/**
 * 
 */
package com.lifeware.research.endo.models.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.lifeware.research.endo.models.entities.TerapieMediche;

/**
 * <p>Utilizza H8 per rendere disponibili le operazioni sulle terapie mediche.
 * </p>
 * 
 * @author  Riccardo Cardin, (C) 2012 Lifeware
 * @version 1.0
 */
@Repository
public class TerapieMedicheH8Dao extends AbsHibernateDao implements
		ITerapieMedicheDao {

	private static final String FIND_ALL_TERAPIE_MEDICHE = 
			"findAllTerapieMediche";
	
	@Autowired
	public TerapieMedicheH8Dao(SessionFactory sessionFactory) {
		
		super(sessionFactory);
	}

	/* (non-Javadoc)
	 * @see com.lifeware.research.endo.models.dao.ITerapieMedicheDao#findAllTerapieMediche()
	 */
	@Override
	public List<TerapieMediche> findAllTerapieMediche() {
		
		/* Apro una sessione */
		Session session = this.sessionFactory.openSession();
		
		/* Recupero le terapie mediche */
		@SuppressWarnings("unchecked")
		List<TerapieMediche> terapieMediche = 
				session.getNamedQuery(FIND_ALL_TERAPIE_MEDICHE).list();
		
		/* Chiudo la sessione */
		session.close();
		
		return terapieMediche;
	}

	@Override
	public TerapieMediche findById(Integer id) {
		
		TerapieMediche terapia = null;
		
		/* Apro una sessione */
		Session session = this.sessionFactory.openSession();
		
		/* Recupero la terapia medica */
		terapia = (TerapieMediche) session.get(TerapieMediche.class, id);
		
		/* Chiudo la sessione */
		session.close();
		
		return terapia;
	}

}
